/**
 * 字典属性常量
 * @author zzf
 * @date 2025-05-28
 */

export const DIC_PROP = {
  VAR_KEY_SOURCE: [
    {
      label: "流程表单",
      value: "#flowform."
    },
    {
      label: "流程变量",
      value: "#flowvar."
    },
    {
      label: "当前用户",
      value: "#currentuser."
    }
  ],
  APPROVE_BUTTONS: [
    {
      label: "审批通过",
      value: "0"
    },
    {
      label: "转办",
      value: "11"
    },
    {
      label: "打回开始节点",
      value: "1"
    },
    {
      label: "打回上一节点",
      value: "10"
    },
    {
      label: "跳转",
      value: "8"
    },
    {
      label: "驳回",
      value: "2"
    },
    {
      label: "指定下一办理人",
      value: "3"
    },
    {
      label: "前加签",
      value: "5"
    },
    {
      label: "后加签",
      value: "6"
    }
  ],
  YES_OR_NO: [
    {
      label: "否",
      value: "0",
      i18n: "no"
    },
    {
      label: "是",
      value: "1",
      i18n: "yes"
    }
  ],
  YES_OR_NO_BOOL: [
    {
      label: "否",
      value: false,
      i18n: "no"
    },
    {
      label: "是",
      value: true,
      i18n: "yes"
    }
  ],
  TEMP_STATUS: [
    {
      label: "暂存",
      value: "-1",
      i18n: "temp"
    },
    {
      label: "作废",
      value: "0",
      i18n: "invalid"
    },
    {
      label: "发布",
      value: "1",
      i18n: "pub"
    }
  ],
  ORDER_STATUS: [
    {
      label: "撤回",
      value: "-3"
    },
    {
      label: "暂存",
      value: "-2"
    },
    {
      label: "运行中",
      value: "-1"
    },
    {
      label: "完成",
      value: "0"
    },
    {
      label: "提前结束",
      value: "2"
    },
    {
      label: "作废",
      value: "3"
    }
  ],
  NODE_TYPE_DESC: [
    {
      label: "发起节点",
      value: "Start"
    },
    {
      label: "任务节点",
      value: "Job"
    },
    {
      label: "子流程节点",
      value: "Subflow"
    },
    {
      label: "结束节点",
      value: "End"
    }
  ],
  WHOSE_TYPE: [
    {
      label: "发起人所属部门",
      value: "0"
    },
    {
      label: "指定人员所属部门",
      value: "1"
    }
  ],
  DYNAMIC_DEPT_TYPE: [
    {
      label: "发起人所属部门",
      value: "0"
    },
    {
      label: "指定部门",
      value: "1"
    }
  ],
  JOB_TYPE: [
    {
      label: "个人",
      value: "0"
    },
    {
      label: "角色",
      value: "1"
    },
    {
      label: "发起人",
      value: "3"
    },
    {
      label: "单级部门主管",
      value: "4"
    },
    {
      label: "多级部门主管",
      value: "5"
    },
    {
      label: "指定部门主管",
      value: "6"
    },
    {
      label: "动态办理人",
      value: "7"
    },
    {
      label: "指定岗位",
      value: "8"
    },
    {
      label: "指定部门岗位",
      value: "9"
    },
    {
      label: "动态函数计算",
      value: "10"
    }
  ],
  JOB_USER_TYPE: [
    {
      label: "个人",
      value: "0"
    },
    {
      label: "角色",
      value: "1"
    }
  ],
  EXECUTE_MODE: [
    {
      label: "并行",
      value: "parallel"
    },
    {
      label: "串行",
      value: "serial"
    }
  ],
  PARALLEL_MODE: [
    {
      label: "会签",
      value: "all"
    },
    {
      label: "或签",
      value: "one"
    }
  ],
  MSG_TYPE: [
    {
      label: "个人消息",
      value: "0"
    },
    {
      label: "群发消息",
      value: "1"
    }
  ],
  NODE_STATUS: [
    {
      label: "未开始",
      value: "-1"
    },
    {
      label: "办理中",
      value: "0"
    },
    {
      label: "完成",
      value: "1"
    },
    {
      label: "驳回中",
      value: "2"
    },
    {
      label: "跳过",
      value: "3"
    },
    {
      label: "被驳回",
      value: "9"
    }
  ],
  REJECT_STATUS: [
    {
      label: "驳回中",
      value: "0"
    },
    {
      label: "结束",
      value: "1"
    }
  ],
  REJECT_TYPE: [
    {
      label: "审批时依次审批",
      value: "0"
    },
    {
      label: "审批时直接跳转到驳回节点",
      value: "1"
    }
  ],
  OPERATOR: [
    {
      label: "等于",
      value: "0"
    },
    {
      label: "不等于",
      value: "1"
    },
    {
      label: "大于",
      value: "2"
    },
    {
      label: "大于等于",
      value: "3"
    },
    {
      label: "小于",
      value: "4"
    },
    {
      label: "小于等于",
      value: "5"
    },
    {
      label: "包含",
      value: "6"
    },
    {
      label: "不包含",
      value: "7"
    }
  ],
  VAL_TYPE: [
    {
      label: "简单条件",
      value: "0"
    },
    {
      label: "动态表达式条件",
      value: "1"
    },
    {
      label: "动态函数条件",
      value: "2"
    }
  ],
  NODE_METHODS: [
    {
      label: "节点启动",
      value: "startnode"
    },
    {
      label: "节点完成",
      value: "completenode"
    }
  ],
  JOB_METHODS: [
    {
      label: "任务启动",
      value: "startjob"
    },
    {
      label: "任务自动审批",
      value: "autoauditjob"
    },
    {
      label: "任务完成",
      value: "completejob"
    },
    {
      label: "任务被驳回",
      value: "rejectjob"
    },
    {
      label: "驳回至此任务",
      value: "reject2job"
    },
    {
      label: "任务被跳转",
      value: "jumpjob"
    },
    {
      label: "跳转至此任务",
      value: "jump2job"
    }
  ],
  FLOW_METHODS: [
    {
      label: "流程发起时",
      value: "initiate"
    },
    {
      label: "流程完成时",
      value: "finish"
    },
    {
      label: "流程撤回时",
      value: "recall"
    },
    {
      label: "流程提前结束时",
      value: "stop"
    },
    {
      label: "流程作废时",
      value: "cancel"
    }
  ],
  CLAZZ_TYPE: [
    {
      label: "节点事件",
      value: "0"
    },
    {
      label: "全局事件",
      value: "1"
    }
  ],
  COLUMN_TYPE: [
    {
      label: "varchar",
      value: "varchar"
    },
    {
      label: "bigint",
      value: "bigint"
    },
    {
      label: "int",
      value: "int"
    },
    {
      label: "double",
      value: "double"
    },
    {
      label: "timestamp",
      value: "timestamp"
    },
    {
      label: "date",
      value: "date"
    },
    {
      label: "float",
      value: "float"
    },
    {
      label: "bit",
      value: "bit"
    }
  ],
  FORM_PERM_TYPE: [
    {
      label: "显示/隐藏",
      value: "-1"
    },
    {
      label: "只读/编辑",
      value: "0"
    }
  ],
  OR_OR_AND: [
    {
      label: "或",
      value: "0"
    },
    {
      label: "且",
      value: "1"
    }
  ]
};

export function filterDictLabel(dict, value) {
  const dictItems = dict.filter(item => {
    return item.value === value;
  });
  if (dictItems && dictItems.length > 0) {
    return dictItems[0].label;
  }
}
